package com.qst.service;

import com.qst.pojo.entity.Order;
import com.qst.pojo.entity.Station;
import com.qst.pojo.entity.User;

/**
 * 通知服务接口
 */
public interface NotificationService {
    
    /**
     * 发送新订单通知给站长
     * @param order 订单信息
     */
    void sendNewOrderNotification(Order order);
    
    /**
     * 发送订单创建确认邮件给客户
     * @param order 订单信息
     */
    void sendOrderConfirmationToCustomer(Order order);
    
    /**
     * 发送订单状态更新通知给客户
     * @param order 订单信息
     * @param oldStatus 旧状态
     * @param newStatus 新状态
     */
    void sendOrderStatusUpdateNotification(Order order, String oldStatus, String newStatus);
    
    /**
     * 发送系统维护通知给所有客户和站长
     * @param isMaintenanceMode 是否进入维护模式
     */
    void sendMaintenanceNotification(boolean isMaintenanceMode);
    
    /**
     * 发送用户注册成功通知
     * @param user 注册用户
     */
    void sendUserRegistrationNotification(User user);
    
    /**
     * 发送低库存警告
     * @param station 站点信息
     * @param threshold 低库存阈值
     */
    void sendLowStockAlert(Station station, int threshold);
    
    /**
     * 发送满载库存警告
     * @param station 站点信息
     * @param threshold 满载阈值
     */
    void sendFullStockAlert(Station station, int threshold);
}
